Language Support for Evolvable Software: An Initial Assessment of Aspect-Oriented Programming
نویسندگان
چکیده
Separation of concerns [1] is key to manage the complexity of understanding and evolving software. Software engineers have learned how to decompose a complex system into simpler sub-systems, with the goal of making the complexity of sub-problems tractable. Sub-problems are addressed relatively independently and the complete solution is built by gluing together the sub-solutions. The parts that compose the whole system are often modular units of functionality and this partitioning is well supported by existing programming languages, thanks to object orientation, functional decomposition, etc. Indeed, object-oriented programming languages, and the adoption of suitable programming techniques, are important steps in the direction of making software evolution easier. There are two major object-oriented concepts that affect evolution: encapsulation and inheritance. Encapsulation limits the effects of change to localized portion of code. Inheritance allows one to incrementally evolve a component by adding new features or redefining existing features. Both encapsulation and inheritance are instances of the more general concept of separation of concerns. However, sometimes a concern is not easily encapsulated in a functional unit, because it crosscuts the entire system, or parts of it. Synchronization, memory management, network distribution, load balancing, error checking, profiling, security are all aspects of computer problems that are unlikely to be separated in functional units.
منابع مشابه
Extensions of UML to Model Aspect-oriented Software Systems
Aspect-Oriented Programming (AOP) has arisen as a new technology to support a better SoC (Separation of Concerns), intending to contribute to the development of reusable, maintainable, and evolvable software systems. Aspects have been also explored in the early life cycle phases, aiming at contributing to a more adequate development of aspect-oriented software systems. In this perspective, in o...
متن کاملDeclarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey
One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...
متن کاملThe Essence of AspectJ
In the construction of a large software system, it is inevitable that some aspects of program behavior will cut across the structure of the code. The changes that are needed to support a new feature, for example, may be spread across several different points in the original program, making them harder to maintain and harder to reuse. The designers of “aspect-oriented” programming languages aim ...
متن کاملAssessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method
Aspect-oriented (AO) software development is an emerging paradigm that provides new abstractions and mechanisms to support the modularization of crosscutting concerns through the software development. However, the achievement of high-quality AO software is not trivial. The inappropriate use of aspect-oriented abstractions and mechanisms potentially leads to the violation of important design pri...
متن کاملAspect-Oriented Programming for Pervasive Computing: A Comparative Study
Recent years have seen an increasing interest in research into and development of pervasive and ubiquitous computing environments. Such environments require a high degree of adaptability and are often inherently distributed in nature. Adaptation and distribution are properties with a crosscutting nature as the need for adaptation is determined by the context in which various elements of the env...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1999